倒數2天,把握時間繼續努力!
昨天製作了顧客視角的服務項目詳細頁後,今天依照原先的 Wireflame 設計線稿,刻出可供預約的日期時段區塊,這部分有另外拉出去做 component,為的是在預約表單的頁面也能重複使用。可以先看一下畫面(左邊為線稿、右邊則為目前畫面截圖):
本想將可預約日期加上 icon 標示,實際做出來後覺得好像設計反了,因為這樣會讓使用者不清楚可預約的日期到底是幾號,所以這部分邏輯就顛倒過來,將不可預約的日期以淺灰色的 icon 標示,較可讓使用者一眼就知道還剩幾號是可供預約的。
<Table>
手刻<thead>
拿來做星期的標示,個人偏愛從星期一開始。
<table>
<thead>
<tr>
<th>一</th>
<th>二</th>
<th>三</th>
<th>四</th>
<th>五</th>
<th>六</th>
<th>日</th>
</tr>
</thead>
</table>
tbody
裡則是使用一行一行的 <tr>
來渲染每周、 <tr>
裡的 <td>
當然就是以7個為一組。
<table>
<tbody>
<tr>
<td>x</td>
<td>3</td>
<td>x</td>
<td>x</td>
<td>6</td>
<td>x</td>
<td>x</td>
</tr>
</tbody>
</table>
整體大約會像這樣:
const data = [
{
date: 1,
isEnabled: true,
period: [
{ time: "09:00~12:00", isEnabled: false},
{ time: "14:00~17:00", isEnabled: true},
{ time: "19:00~22:00", isEnabled: true}
]
},
{
date: 2,
isEnabled: false
},
// 以此類推後續日期
];
<tr>
)、並將每天都塞入 <td>
裡<td>
上,添加 onClick 監聽事件,若點選就在整個月曆表格下方顯示當日可供預約的時段